package com.arcticcoding.controlphone;

import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryonet.EndPoint;

/**
 * Die Klasse Network enthaelt Informationen ueber die Objekte, die ueber das
 * Netz versendet werden sollen und auch eine Methode um diese an dem Client und
 * dem Server zu registrieren.
 * 
 * @author Steffen Zuber
 * 
 */
public class Network {

	// Der Port, ueber den die Kommunikation zwischen Client und Server im Netz
	// ablaueft
	static public final int port = 6666;

	/**
	 * Diese Methode registriert die Objekte, die ueber das Netz gesendet
	 * werden.
	 * 
	 * @param endpoint
	 *            Endpunkt der Verbindung, an dem die Objekt registriert werden
	 *            sollen
	 */
	static public void register(EndPoint endpoint) {
		Kryo kryo = endpoint.getKryo();
		kryo.register(MovementMessage.class);
		kryo.register(RegisterName.class);
	}

	/**
	 * Die Klasse MovementMessage beschreibt den Aufbau des Objekts
	 * MovementMessage, das ueber das Netz gesendet wird. Es enthaelt einen
	 * String, der den Befehl angibt.
	 * 
	 * @author Steffen Zuber
	 * 
	 */
	static public class MovementMessage {
		public String text;
	}

	/**
	 * Die Klasse RegisterName beschreibt den Aufbau des Objekts RegisterName,
	 * das ueber das Netz gesendet wird. Es enthaelt einen String, der den Namen
	 * angibt.
	 * 
	 * @author Steffen Zuber
	 * 
	 */
	static public class RegisterName {
		public String name;
	}
}
